package com.yusong.algorithm.link;

/*
给定一个链表，两两交换其中相邻的节点，并返回交换后的链表。

你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
 */
public class SwapPairs24 {


    public ListNode swapPairs(ListNode head) {
        if(head == null || head.next == null){
            return head;
        }
        //不可能取值
        ListNode dummy = new ListNode(Integer.MAX_VALUE);
        dummy.next = head;
        ListNode cur = dummy;
        while (cur.next != null && cur.next.next != null){
            ListNode next = cur.next.next.next;
            ListNode temp = cur.next;
            cur.next = cur.next.next;
            cur.next.next = temp;
            temp.next = next;
            cur = temp;
        }
        return dummy.next;
    }
}
